The present invention relates generally to multicast systems and more particularly to controlling resources for managing multicast traffic.
The use of packet transmission techniques in multinode communications networks has become quite commonplace. Such systems normally include a number of packet switching nodes interconnected with transmission links forming the overall communication system. Digital information is divided into groups of packets, each having a header with the necessary routing information necessary for controlling the switching nodes to move the packet from the originating node to its destination or destinations. Such systems are used not only for small, local servicing of clustered data processing sites, but also for large, widely distributed data processing functions of national or international scope.
Routing protocols or methods are used to control the routing of the packets from node to node through the transmission system. Automatic Network Routing (ANR) uses a concatenation of linked labels or identifiers for the successive legs of the packet switching route. Labels are stripped away as the packet traverses the network, always leaving the next required label at the head of the routing field. The compiling and management of these concatenated labels represents the possibility for error and requires extra processing. This may be avoided by setting up a distribution tree defined as a connected set of network nodes and links. In such a tree, a unique tree address is used in the routing field of the packet header and the same tree address is associated with every link forming the tree. When a multicast packet reaches a packet switching node, the tree address in the packet is compared to the tree address associated with all outgoing links from the node. The packet then may be propagated from the node on one or a plurality of links for which an address match occurs. Great efficiency is achieved by having multiple branches connected to a switching node over which the packets may be propagated simultaneously to a relatively large number of eventual users in a multicast system.
Multicast routing involves the creation and maintenance of a set of transmission systems for users who wish to communicate over the network via a packet switching protocol. This also requires the determination and maintenance of an optimum path for interconnecting the members of the set to one another. In the prior art, it has been common to create and use a multicast tree for well known groups of users, but considerable problems arise when the membership of the group changes, hardware failures occur, or reactivation of a user or a partition of the tree create loops in the tree route. The set up or definition of the tree is thus an item of significant interest about which much as been written.
For example, see Bubenik et al, xe2x80x9cMultipoint Connection Management in High Speed Networksxe2x80x9d, in the proceedings of the IEEE INFOCOM 1991 appearing in the IEEE April 1991. Also see Segall et al, xe2x80x9cReliable Multiuser Tree Setup with Local Identifiersxe2x80x9d, appearing as a research report of the IBM Corporation, dated December 1990.
Methods of setting up tree distribution mechanisms have followed various procedures described in the prior art just noted. These include both a serialized algorithm in which the route is calculated to produce a concatenation of link identifiers, or calculation is conducted in a hop-by-hop process to minimize the path length. Neither of these approaches is considered to be efficient, in that the tree setup messages must be propagated from node to node in a serial fashion and the results interpreted to provide a desired solution.
A method and apparatus to address some of these problems is described in U.S. Pat. No. 5,355,371, assigned to the assignee of the present application. This patent discloses facilities in each individual node including a processor, a communications network topology database, necessary memory, and executable programs for carrying out various control and management functions. Each node is constituted with operative code to act as a Set Manager that may assume various roles, depending on the needs of a user set that may be served by the Set Manager. The primary functions of the Set Manager are involved with the set creation, modification and dissolution, and have been described in the aforementioned application. Other functions are uniquely and separately associated with the creation and management of the distribution trees within the network controlled by the Set Manager operating in its various roles.
The creation, dissolution, and control of the distribution tree within the network is a separate function assigned to a Tree Leader (TL). The Tree Leader residing in any node may be invoked in response to requests from set members or outsiders to transmit a message to a known group, or to create or activate a tree communication path or paths for the carrying of multicast packets. The advantage of separating the set administration for the set of users from the tree communication creation and administration is the more efficient response to changes in set membership, and a more rapid response to communication failures in the network.
The distributed control of set membership and of separate and distributed control of transmission path creation, makes use of the multicast communication system much more reliable by virtue of its increased redundancy. Messages are exchanged between the set management functions and the Tree Leader functions to inform the Tree Leaders of changes in set membership and in the viability of various transmission paths.
Change notification messages from the Set Manager to the Tree Leaders are invoked whenever a tree user joins or leaves the set, and whenever the Set Manager fails to receive a tree refreshing message from a Tree Leader. An automatic timeout feature allows the Tree Leader to respond to failures of transmission links, which cause partitions of the tree in a rapid and effective manner.
Although this system operates effectively for its stated purpose, it only provides a way to manage one type of tree structure. Accordingly, conventional systems require that a router utilized in such systems be aware of multiple tree structures and ensure that the data packets can be transmitted to all necessary transmission links. This adds complexity to the overall network when providing multicast transmissions. Accordingly, managing multicast traffic overcomes the above-stated problem. The system should be easy to implement, cost effective and easily adapted to existing systems.
The present invention addresses such a need.
A system for controlling multicast traffic in a multiprocessing system is disclosed. The multiprocessing system includes a general-purpose processor, a plurality of network processors and a switch fabric. The system comprises a multicast identifier (MID) manager to manage a distributed database of MIDs. The distributed database includes at least one compound MID. The compound MID structure further comprises a plurality of MIDs representing at least two multicast groups. The system also includes a MID processor which traverses the at least one compound MID and resolves it into its associated simple MIDs.
Accordingly, the present invention provides for a system and method for efficiently controlling multicast transmissions when different types of multicast groups are to receive the multicast transmissions. In this system and method a new type of multicast identifier (MID) is provided, a compound MID. The compound MID is a single MID but references multiple MIDs. The system includes a MID manager which manages a distributed database of MIDs. Finally, the system and method includes at least one MID processor which accesses the appropriate compound MIDs and resolves them into the simple member MIDs to allow a router to provide the information to an appropriate bridge.